{% extends "./inc_base.html" %} {%block body%}data-s2t-class="btn-primary
bg-gradient" data-bs-spy="scroll" data-bs-target="#demos-scrollspy"
data-bs-offset="0"{%endblock%} {% block middle %}
<!-- hero -->
<div class="section pb-0 pt-3 position-relative">
  <!-- svg shape, desktop only -->
  <span
    class="d-none d-lg-block position-absolute top-0 start-0 end-0 bottom-0 z-index-0 mt-n4"
    data-aos="fade-in"
    data-aos-delay="800"
    style="width: 115%"
  >
    <svg
      class="opacity-25"
      width="100%"
      xmlns="http://www.w3.org/2000/svg"
      viewBox="0 0 1920 1285"
    >
      <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g
          id="Home"
          transform="translate(0.000000, -1200.000000)"
          fill="#f1f4f8"
        >
          <g transform="translate(0.000000, 1200.000000)">
            <path
              d="M1919,1027.0042 L1920,381.0042 C1920,381.0042 1846,352.0042 1607.104,337.0872 C1020.092,300.4342 1065.514,256.9832 819.301,134.5722 C642.592,46.7182 509.296,73.7572 318.62,69.3862 C127.942,65.0152 0,0.0042 0,0.0042 L0,692.0042 L1919,1027.0042 Z"
            ></path>
            <path
              d="M1,258.0599 L0,904.0599 C0,904.0599 74,933.0599 312.896,947.9769 C899.908,984.6299 854.486,1028.0809 1100.699,1150.4919 C1277.408,1238.3469 1410.704,1211.3069 1601.38,1215.6779 C1792.058,1220.0489 1920,1285.0599 1920,1285.0599 L1920,593.0599 L1,258.0599 Z"
            ></path>
          </g>
        </g>
      </g>
    </svg>
  </span>

  <div class="container py-3">
    <div class="row g-4 justify-content-md-between align-items-md-center mb-5">
      <div class="col-lg-6 col-xl-6" data-aos="fade-up" data-aos-delay="100">
        <div class="mb-5">
          <h2 class="mb-5 display-2 fw-bold">
            <span class="d-block">CmsWing</span>
            <span class="d-block fs-1 text-primary text-danger-gradient"
              >企业级Node WEB开发框架!</span
            >
          </h2>
          <p class="fs-5 fw-light">
            <i class="fi mdi-filter_1"></i> 使用 Egg.js 和 GraphQ 构建更好的
            NodeJS 应用程序，帮助开发人员降低开发和维护成本！
          </p>
          <p class="fs-5 fw-light">
            <i class="fi mdi-filter_2"></i> CmsWing
            基础框架免费开源可商用，遵循MulanPSL-2.0开源协议，源码开放无后门，安全保障。
          </p>
        </div>

        <div class="text-center-xs">
          <a
            href="https://www.cmswing.com/cms/list/documentation"
            class="btn btn-primary bg-gradient shadow-primary-xlg row-pill fw-medium d-inline-flex align-items-center px-4 mb-3"
          >
            <span class="me-1">开始使用</span>
            <svg
              width="18"
              height="18"
              xmlns="http://www.w3.org/2000/svg"
              fill="currentColor"
              class="bi bi-arrow-right-short"
              viewBox="0 0 16 16"
            >
              <path
                fill-rule="evenodd"
                d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"
              ></path>
            </svg>
          </a>
          <a
            href="https://gitee.com/cmswing/CmsWing.git"
            target="_blank"
            rel="noopener nofollow"
            class="btn bg-light-hover btn-ghost row-pill fw-medium d-inline-flex align-items-center px-4 p-0-xs mb-3"
          >
            <span class="me-1">Gitee</span>
            <svg
              width="18"
              height="18"
              xmlns="http://www.w3.org/2000/svg"
              fill="currentColor"
              class="bi bi-arrow-right-short"
              viewBox="0 0 16 16"
            >
              <path
                fill-rule="evenodd"
                d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"
              ></path>
            </svg>
          </a>
          <a
            href="https://github.com/arterli/CmsWing.git"
            target="_blank"
            rel="noopener nofollow"
            class="btn bg-light-hover btn-ghost row-pill fw-medium d-inline-flex align-items-center px-4 p-0-xs mb-3"
          >
            <span class="me-1">GitHub</span>
            <svg
              width="18"
              height="18"
              xmlns="http://www.w3.org/2000/svg"
              fill="currentColor"
              class="bi bi-arrow-right-short"
              viewBox="0 0 16 16"
            >
              <path
                fill-rule="evenodd"
                d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z"
              ></path>
            </svg>
          </a>
        </div>
      </div>

      <div class="col-lg-6 col-xl-6" data-aos="fade-up" data-aos-delay="100">
        <!-- hero images -->
        <div
          class="position-relative text-center"
          data-aos="fade-in"
          data-aos-delay="450"
        >
          <!-- svg lines -->
          <svg
            class="rtl-scalex-n1 position-absolute start-0 top-0 z-index-1 text-primary mx-4"
            fill="currentColor"
            data-aos="fade-up"
            data-aos-delay="200"
          >
            <path
              d="M35.2,1.6c37.3,18.9,72.2,41.8,107.4,64.1c-0.2,0.4-0.4,0.8-0.6,1.2c-1.9-0.8-3.9-1.5-5.6-2.5c-30.3-17-60.6-34.1-91-51.1c-4.1-2.3-8.1-4.6-12.2-6.9c-2.3-1.2-2.8-2.7-1-4.7C33.2,1.6,34.2,1.6,35.2,1.6z"
            ></path>
            <path
              d="M137.4,81.7C93.8,56.6,50.2,31.6,6.6,6.5C6.1,6.2,6.1,5.1,5.2,2.5c4.4,1.6,7.6,2.4,10.5,3.9c10,5.3,20,10.6,29.7,16.5c29.9,18.5,59.6,37.2,89.4,55.9c1.1,0.7,2.1,1.5,3.1,2.2C137.7,81.2,137.6,81.5,137.4,81.7z"
            ></path>
            <path
              d="M122.8,88.8C87.6,68.9,52.4,49,17.2,29c-0.6-0.4-0.8-1.6-1.9-4c3.7,1.1,6.3,1.3,8.3,2.5c20.1,11.4,40.3,22.7,60.1,34.5 c12.1,7.2,23.8,15.3,35.6,23.1c1.4,0.9,2.6,1.9,3.9,2.9C123.1,88.3,122.9,88.6,122.8,88.8z"
            ></path>
            <path
              d="M111.3,103.9c-1.8-1-3.7-1.9-5.5-2.9c-27-15.4-54.1-30.8-81-46.3c-2.1-1.2-5.3-5.2-5.1-5.4c2.8-3.3,5.4-0.2,7.6,1.2c27.6,17,55.2,34.1,82.7,51.3c0.6,0.4,1.2,0.9,1.7,1.4C111.6,103.3,111.5,103.6,111.3,103.9z"
            ></path>
          </svg>

          <!-- images -->
          <span
            class="d-inline-block ratio ratio-1x1 rounded-circle bg-cover mx-1 z-index-0"
            style="
              max-width: 500px;
              background-image: url(/public/assets/demo.files/home_1.png);
            "
          ></span>
          <div class="position-absolute bottom-0 w-100 z-index-1">
            <span
              class="d-inline-block ratio ratio-1x1 rounded-circle bg-cover mx-1 mb-n5 shadow-lg"
              data-jarallax-element="-30"
              style="
                max-width: 200px;
                background-image: url(/public/assets/demo.files/home_2.png);
              "
            ></span>
            <span
              class="d-inline-block ratio ratio-1x1 rounded-circle bg-cover mx-1 mt-n5"
              data-jarallax-element="-60"
              style="
                max-width: 100px;
                background-image: url(/public/sys/eggjs.svg);
              "
            ></span>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
{#
<!-- sticky quick nav -->
<div class="sticky-top text-center bg-white shadow-primary-xs mt-n2">
  <ul id="demos-scrollspy" class="list-inline mb-0 py-3 fw-medium">
    <li class="list-inline-item">
      <a href="#blog" class="scroll-to d-block py-2 link-normal">博客</a>
    </li>
    <li class="list-inline-item">
      <span class="py-2 px-2 text-gray-300">&bull;</span>
    </li>
    <li class="list-inline-item">
      <a href="#template" class="scroll-to d-block py-2 link-normal">模板</a>
    </li>
    <li class="list-inline-item">
      <span class="py-2 px-2 text-gray-300">&bull;</span>
    </li>
    <li class="list-inline-item">
      <a href="#application" class="scroll-to d-block py-2 link-normal">应用</a>
    </li>
    <li class="list-inline-item">
      <span class="py-2 px-2 text-gray-300">&bull;</span>
    </li>
    <li class="list-inline-item">
      <a href="#download" class="scroll-to d-block py-2 link-normal">下载</a>
    </li>
    <li class="list-inline-item">
      <span class="py-2 px-2 text-gray-300">&bull;</span>
    </li>
    <li class="list-inline-item">
      <a href="#bbs" class="scroll-to d-block py-2 link-normal">社区</a>
    </li>
  </ul>
</div>

<!-- block : landing pages -->

<div id="blog" class="section bg-light p-0">
  {% set blog = 'cms_classify'|@findOne({ where:{name:'blog'} })%}
  <div class="container">
    <div class="d-inline-block mx-auto">
      <a
        class="fw-bold d-block mt-3 small"
        href="/cms/list/{{blog.name or blog.id}}"
        >Blog <i class="fi fi-arrow-right-slim small"></i
      ></a>
      <h2 class="display-7 mb-3 fw-bold">博客</h2>
    </div>

    {% set top = 'cms_doc'|@findOne({ include : 'cms_classify',
    where:{classify_id:blog.id,FIND_IN_SET:['position',4]},
    order:[['id','desc']] })%}
    <!-- sticky article -->
    <div class="row">
      <a
        href="/cms/detail/{{top.id}}"
        target="_blank"
        class="col-12 col-md-4 mb-4"
      >
        <img
          class="img-fluid w-100 rounded"
          src="{{top.cover_url}}"
          alt="..."
        />
      </a>

      <div class="col pb-4">
        <!-- title -->
        <div class="mb-4">
          <h2 class="h4 mb-0">
            <a href="/cms/detail/{{top.id}}" class="text-dark fw-medium">
              {{top.title}}
            </a>
          </h2>

          <!-- publish date -->
          <span class="text-muted">
            {{helper.moment(top.createdAt).fromNow()}}
          </span>
        </div>

        <!-- content preview -->
        <div class="mb-4">
          <p>{{top.description|truncate(140, true, "...")}}</p>
        </div>

        <a
          href="/cms/list/{{top['cms_classify.name'] or top['cms_classify.id']}}"
          target="_blank"
          class="link-muted"
          >{{top['cms_classify.title']}}</a
        >
      </div>
    </div>
    <!-- /sticky article -->
    <!-- more articles / blog -->
    <div class="pt-1">
      <div class="row">
        {% set newlist = 'cms_doc'|@findAll({ include : 'cms_classify', where:{
        classify_id:blog.id, id:{op_ne:top.id} }, offset: 0, limit: 4,
        order:[['id','desc']] })%} {% for items in newlist | batch(2) %}
        <div class="col-12 col-md-6">
          {% for item in items %}
          <div class="d-flex mb-3 text-decoration-none">
            <!-- image -->
            <div
              style="width: 100px; height: 100px"
              class="text-center bg-light rounded bg-cover lazy"
              data-background-image="{{item.cover_url}}"
            ></div>

            <div class="col px-3">
              <h3 class="h5 fw-bold">
                <a
                  href="/cms/detail/{{item.id}}"
                  target="_blank"
                  class="text-dark"
                >
                  {{item.title}}
                </a>
              </h3>

              <p class="small">
                <strong>({{helper.moment(item.createdAt).fromNow()}})</strong>
                {{item.description|truncate(50, true, "...")}}
              </p>
            </div>
          </div>
          {% endfor %}
        </div>
        {% endfor %}
      </div>
    </div>
    <!-- /more articles / blog -->
  </div>
</div>
<!-- /block : landing pages -->

<!-- block : ecommerce -->
<div id="template" class="section p-0">
  {% set template = 'cms_classify'|@findOne({ where:{name:'template'} })%}
  <div class="container">
    <div class="d-inline-block mx-auto">
      <a
        class="fw-bold d-block mt-3 small"
        href="/cms/list/{{template.name or template.id}}"
        >Template <i class="fi fi-arrow-right-slim small"></i
      ></a>
      <h2 class="display-7 mb-3 text-center fw-bold">模板</h2>
    </div>

    {% set templatelist = 'cms_doc'|@findAll({ include : 'cms_classify', where:{
    classify_id:template.id }, offset: 0, limit: 3, order:[['id','desc']] })%}
    {%if templatelist|length>0%}
    <div class="row g-4 g-lg-5">
      {%for item in templatelist%}
      <div class="col-12 col-lg-4 mb-5" data-aos="fade-in">
        <h3
          class="h5 mb-3 d-flex align-items-center justify-content-lg-between"
        >
          {{item.title|truncate(16, true, "...")}}
        </h3>

        <a
          href="/cms/detail/{{item.id}}"
          target="_blank"
          class="d-block bg-white shadow-md rounded p-2"
          aria-label="template"
        >
          <div
            class="position-relative rounded overflow-hidden overlay-dark-hover overlay-opacity-3 show-hover-container bg-cover lazy"
            data-background-image="{{item.cover_url}}"
          >
            <svg viewBox="0 0 250 340"></svg>
          </div>
        </a>
      </div>
      {%endfor%}
    </div>
    {%else%}
    <div class="alert alert-primary mb-5" role="alert">暂无数据</div>
    {%endif%}
  </div>
</div>
<!-- /block : ecommerce -->

<!-- block : blog + help center -->
<div id="application" class="section bg-light p-0">
  {% set application = 'cms_classify'|@findOne({ where:{name:'application'} })%}
  <div class="container">
    <div class="d-inline-block mx-auto">
      <a
        class="fw-bold d-block mt-3 small"
        href="/cms/list/{{application.name or application.id}}"
        >Application <i class="fi fi-arrow-right-slim small"></i
      ></a>
      <h2 class="display-7 mb-3 fw-bold">应用</h2>
    </div>
    {% set applicationlist = 'cms_doc'|@findAll({ include : 'cms_classify',
    where:{ classify_id:application.id }, offset: 0, limit: 3,
    order:[['id','desc']] })%} {%if applicationlist|length>0%}
    <div class="row">
      {%for item in applicationlist%}
      <div class="col-12 col-lg-4 mb-3">
        <div
          class="p-3 rounded shadow-md shadow-3d-hover transition-all-ease-250"
        >
          <a href="/cms/detail/{{item.id}}" target="_blank">
            <figure
              class="mb-4 text-center overflow-hidden rounded-top bg-cover lazy"
              data-loaded="true"
              style="background-image: url({{item.cover_url}});"
            >
              <img
                class="w-100"
                src=""
                alt="..."
              />
            </figure>
          </a>

          <h2 class="h5">
            <span class="text-primary"> 官方 </span>

            <small class="float-end text-muted"> 版本：1.0 </small>

            <span class="h6 d-block text-center text-truncate py-3">
              {{item.title}}
            </span>
          </h2>

          <ul class="list-inline text-center text-gray-500 fs-6">
            <li class="list-inline-item">作者：arterli</li>
            <li class="list-inline-item">/</li>
            <li class="list-inline-item">
              更新时间：{{helper.moment(item.updateAt).fromNow()}}
            </li>
          </ul>
        </div>
      </div>
      {%endfor%}
    </div>

    {%else%}
    <div class="alert alert-primary mb-5" role="alert">暂无数据</div>
    {%endif%}
  </div>
</div>
<!-- /block : blog + help center -->

<!-- block : portfolio -->
<div id="download" class="section p-0">
  {% set download = 'cms_classify'|@findOne({ where:{name:'download'} })%}

  <div class="container">
    <div class="d-inline-block mx-auto">
      <a
        class="fw-bold d-block mt-3 small"
        href="/cms/list/{{download.name or download.id}}"
        >Download <i class="fi fi-arrow-right-slim small"></i
      ></a>
      <h2 class="display-7 mb-3 fw-bold">下载</h2>
    </div>
    {% set downloadlist = 'cms_doc'|@findAll({ include : 'cms_classify', where:{
    classify_id:download.id }, offset: 0, limit: 3, order:[['id','desc']] })%}
    {%if downloadlist|length>0%}
    <div class="row aos-init aos-animate" data-aos="fade-in" data-aos-delay="0">
      {%for item in downloadlist%}
      <div class="col-12 col-lg-4 mb-4">
        <div
          class="card border-0 shadow-primary-xs shadow-primary-md-hover transition-all-ease-250 transition-hover-top h-100 rounded overflow-hidden"
        >
          <div class="clearfix">
            <img class="img-fluid" src="{{item.cover_url}}" alt="..." />

            <!-- bottom waves -->
            <svg
              style="margin-top: -50px"
              class="mb-3"
              width="100%"
              height="50px"
              fill="#ffffff"
              xmlns="http://www.w3.org/2000/svg"
              viewBox="0 0 1000 300"
              preserveAspectRatio="none"
            >
              <path
                style="opacity: 0.15"
                d="M 1000 299 l 2 -279 c -155 -36 -310 135 -415 164 c -102.64 28.35 -149 -32 -232 -31 c -80 1 -142 53 -229 80 c -65.54 20.34 -101 15 -126 11.61 v 54.39 z"
              ></path>
              <path
                style="opacity: 0.3"
                d="M 1000 286 l 2 -252 c -157 -43 -302 144 -405 178 c -101.11 33.38 -159 -47 -242 -46 c -80 1 -145.09 54.07 -229 87 c -65.21 25.59 -104.07 16.72 -126 10.61 v 22.39 z"
              ></path>
              <path
                style="opacity: 1"
                d="M 1000 300 l 1 -230.29 c -217 -12.71 -300.47 129.15 -404 156.29 c -103 27 -174 -30 -257 -29 c -80 1 -130.09 37.07 -214 70 c -61.23 24 -108 15.61 -126 10.61 v 22.39 z"
              ></path>
            </svg>
          </div>

          <!-- lines, looks like through a glass -->
          <div class="absolute-full w-100 overflow-hidden">
            <img
              class="img-fluid"
              width="2000"
              height="2000"
              src="/public/assets/images/masks/shape-line-lense.svg"
              alt="..."
            />
          </div>

          <div class="card-body fw-light mt-0">
            <h2 class="h5 card-title mb-3">{{item.title}}</h2>

            <p class="fs-6 mb-0">
              {{item.description|truncate(50, true, "...")}}
            </p>
          </div>

          <div class="card-footer bg-transparent border-0">
            <span class="float-end fs-6 text-gray-500 p-2"> 官方 </span>

            <a
              href="/cms/detail/{{item.id}}"
              target="_blank"
              class="btn btn-sm btn-primary btn-soft opacity-6"
            >
              下载
            </a>
          </div>
        </div>
      </div>
      {%endfor%}
    </div>
    {%else%}
    <div class="alert alert-primary mb-5" role="alert">暂无数据</div>
    {%endif%}
  </div>
</div>
<!-- /block : portfolio -->

<!-- block : admin -->
<div id="bbs" class="section bg-theme-color-light p-0">
  <div class="container">
    <div class="d-inline-block mx-auto">
      <a
        class="fw-bold d-block mt-3 small"
        href="/cms/list/{{application.name or application.id}}"
        >BBS <i class="fi fi-arrow-right-slim small"></i
      ></a>
      <h2 class="display-7 mb-5 fw-bold">社区</h2>
    </div>

    <div class="alert alert-primary mb-5" role="alert">开发中...</div>
  </div>
</div>
<!-- block : admin -->
<!-- block : icons : 3 -->
#}
<div
  class="container bg-gray-200 rounded-xl mt-3 mb-5"
  data-aos="fade-in"
  data-aos-delay="200"
  data-aos-offset="0"
>
  <!-- svg lines -->
  <svg
    class="rtl-scalex-n1 position-absolute start-0 top-0 z-index-1 text-warning mx-3 mt-n5"
    fill="currentColor"
    data-aos="fade-up"
    data-aos-delay="200"
  >
    <path
      d="M35.2,1.6c37.3,18.9,72.2,41.8,107.4,64.1c-0.2,0.4-0.4,0.8-0.6,1.2c-1.9-0.8-3.9-1.5-5.6-2.5c-30.3-17-60.6-34.1-91-51.1c-4.1-2.3-8.1-4.6-12.2-6.9c-2.3-1.2-2.8-2.7-1-4.7C33.2,1.6,34.2,1.6,35.2,1.6z"
    ></path>
    <path
      d="M137.4,81.7C93.8,56.6,50.2,31.6,6.6,6.5C6.1,6.2,6.1,5.1,5.2,2.5c4.4,1.6,7.6,2.4,10.5,3.9c10,5.3,20,10.6,29.7,16.5c29.9,18.5,59.6,37.2,89.4,55.9c1.1,0.7,2.1,1.5,3.1,2.2C137.7,81.2,137.6,81.5,137.4,81.7z"
    ></path>
    <path
      d="M122.8,88.8C87.6,68.9,52.4,49,17.2,29c-0.6-0.4-0.8-1.6-1.9-4c3.7,1.1,6.3,1.3,8.3,2.5c20.1,11.4,40.3,22.7,60.1,34.5 c12.1,7.2,23.8,15.3,35.6,23.1c1.4,0.9,2.6,1.9,3.9,2.9C123.1,88.3,122.9,88.6,122.8,88.8z"
    ></path>
    <path
      d="M111.3,103.9c-1.8-1-3.7-1.9-5.5-2.9c-27-15.4-54.1-30.8-81-46.3c-2.1-1.2-5.3-5.2-5.1-5.4c2.8-3.3,5.4-0.2,7.6,1.2c27.6,17,55.2,34.1,82.7,51.3c0.6,0.4,1.2,0.9,1.7,1.4C111.6,103.3,111.5,103.6,111.3,103.9z"
    ></path>
  </svg>

  <div class="row col-border text-center overflow-hidden">
    <div
      class="col-6 col-md-4 py-4 z-index-1"
      data-aos="fade-up"
      data-aos-delay="50"
      data-aos-offset="0"
    >
      <a
        href="#"
        class="d-block text-decoration-none text-dark transition-hover-top transition-all-ease-250"
      >
        <div
          style="width: 120px; height: 120px"
          class="bg-white mb-4 border border-light rounded-circle shadow-md d-inline-flex justify-content-center align-items-center"
        >
          <i class="fi fi-brain display-5"></i>
        </div>

        <h3 class="h4">高效自然的研发体验</h3>

        <p class="max-w-350 mx-auto fs-6">
          渐进式开发，学习曲线平滑，提供一站式开发套件，为研发全流程保驾护航。
        </p>
      </a>
    </div>

    <div
      class="col-6 col-md-4 py-4 z-index-1"
      data-aos="fade-up"
      data-aos-delay="250"
      data-aos-offset="0"
    >
      <a
        href="#admin"
        class="scroll-to d-block text-decoration-none text-dark transition-hover-top transition-all-ease-250"
      >
        <div
          style="width: 120px; height: 120px"
          class="bg-white mb-4 border border-light rounded-circle shadow-md d-inline-flex justify-content-center align-items-center"
        >
          <i class="fi fi-heart-empty display-5"></i>
        </div>

        <h3 class="h4">灵活、高扩展性</h3>

        <p class="max-w-350 mx-auto fs-6">
          约定优于配置，高度灵活的定制性，业界领先的插件机制和上层业务框架机制。
        </p>
      </a>
    </div>

    <div
      class="col-12 col-md-4 py-4 z-index-1 border-top-xs"
      data-aos="fade-up"
      data-aos-delay="450"
      data-aos-offset="0"
    >
      <a
        href="#"
        class="d-block text-decoration-none text-dark transition-hover-top transition-all-ease-250"
      >
        <div
          style="width: 120px; height: 120px"
          class="bg-white mb-4 border border-light rounded-circle shadow-md d-inline-flex justify-content-center align-items-center"
        >
          <i class="fi fi-layers display-5"></i>
        </div>

        <h3 class="h4">完善的生态</h3>

        <p class="max-w-350 mx-auto fs-6">
          基于开源生态，专为泛蚂蚁生态定制，一分钟接入后端服务中间件，支持多种部署环境。
        </p>
      </a>
    </div>
  </div>
</div>
<!-- /block : icons : 3 -->
{% endblock %} 
